﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LambdaToSql.Extended
{
    /// <summary>
    /// 自定义扩展
    /// </summary>
    public static class WhereExtensions
    {
        /// <summary>
        /// not like
        /// <para>不建议使用,建议使用 ExNotLike;</para>
        /// <para>确定此字符串实例是否与指定的字符串不匹配;</para>
        /// <para>例如: ex.name.ExNotLike("wsy");</para>
        /// <para>结果: name not like '%wsy%'</para>
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="item"></param>
        /// <param name="where"></param>
        /// <returns></returns>
        public static bool NotContains<T>(this T item, object where)
        {
            return true;
        }

        /// <summary>
        /// in 操作;
        /// <para>例如: ex.logid.ExIn(lists);</para>
        /// <para>结果: login in (1,2,3,4,5)</para>
        /// </summary>
        /// <param name="t"></param>
        /// <param name="obj">集合 数组</param>
        /// <returns></returns>
        public static bool ExIn<T>(this T t, IEnumerable<T> obj)
        {
            return true;
        }

        /// <summary>
        /// not In 操作;
        /// <para>例如: ex.logid.ExNotIn(lists);</para>
        /// <para>结果: login not in (1,2,3,4,5)</para>
        /// </summary>
        /// <param name="t"></param>
        /// <param name="obj">集合 数组</param>
        /// <returns></returns>
        public static bool ExNotIn<T>(this T t, IEnumerable<T> obj)
        {
            return true;
        }

        /// <summary>
        /// not like 
        /// <para>确定此字符串实例是否与指定的字符串不匹配;</para>
        /// <para>例如: ex.name.ExNotLike("wsy");</para>
        /// <para>结果: name not like '%wsy%'</para>
        /// </summary>
        /// <param name="t"></param>
        /// <param name="obj"></param>
        /// <returns></returns>
        public static bool ExNotLike<T>(this T t, T obj)
        {
            return true;
        }

        /// <summary>
        /// not like;
        /// <para>确定此字符串实例的开头是否与指定的字符串不匹配;</para>
        /// <para>例如: ex.name.ExNotStartsLike("wsy");</para>
        /// <para>结果: name not like 'wsy%';</para>
        /// </summary>
        /// <param name="t"></param>
        /// <param name="obj"></param>
        /// <returns></returns>
        public static bool ExNotStartsLike<T>(this T t, T obj)
        {
            return true;
        }

        /// <summary>
        /// not like; 
        /// <para>确定此字符串实例的结尾是否与指定的字符串不匹配;</para>
        /// <para>例如: ex.name.ExNotEndsLike("wsy");</para>
        /// <para>结果: name not like '%wsy'</para>
        /// </summary>
        /// <param name="t"></param>
        /// <param name="obj"></param>
        /// <returns></returns>
        public static bool ExNotEndsLike<T>(this T t, T obj)
        { 
            return true;
        }
    }
}
